package com.woniuxy.flowable.task;

import lombok.extern.slf4j.Slf4j;
import org.flowable.engine.delegate.DelegateExecution;
import org.flowable.engine.delegate.JavaDelegate;
import org.springframework.stereotype.Component;

/**
 * 客户资料填写自动完成处理器
 * 用于自动完成销售员填写资料任务，直接推进到地区经理审批
 * 
 * @author woniuxy
 */
@Slf4j
@Component
public class CustomerAutoCompleteHandler implements JavaDelegate {

    @Override
    public void execute(DelegateExecution execution) {
        try {
            // 获取流程变量
            String customerId = (String) execution.getVariable("customerId");
            String customerName = (String) execution.getVariable("customerName");
            String applicant = (String) execution.getVariable("applicant");
            
            log.info("自动完成客户资料填写任务，客户ID：{}，客户名称：{}，申请人：{}", 
                    customerId, customerName, applicant);
            
            // 可以在这里添加一些业务逻辑，比如：
            // 1. 记录客户资料填写完成日志
            // 2. 更新客户状态
            // 3. 发送通知等
            
            // 设置任务完成变量
            execution.setVariable("taskFillInfoCompleted", true);
            execution.setVariable("fillInfoTime", System.currentTimeMillis());
            
            log.info("客户资料填写任务自动完成，流程继续执行");
            
        } catch (Exception e) {
            log.error("自动完成客户资料填写任务失败", e);
            throw new RuntimeException("自动完成客户资料填写任务失败: " + e.getMessage(), e);
        }
    }
}
